package com.vhans.db.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.vhans.core.domain.User;
import com.vhans.db.model.dto.ConditionDTO;
import com.vhans.db.model.dto.EmailDTO;
import com.vhans.db.model.dto.user.UserDTO;
import com.vhans.db.model.dto.user.UserInfoDTO;
import com.vhans.db.model.dto.user.UserPasswdDTO;
import com.vhans.db.model.vo.user.UserInfoVO;
import com.vhans.db.model.vo.user.UserVO;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 用户业务接口
 *
 * @author vhans
 **/
public interface IUserService extends IService<User> {

    /**
     * 获取用户列表
     *
     * @return 用户列表
     */
    List<UserVO> listUser(ConditionDTO condition);

    /**
     * 获取用户信息
     *
     * @return 用户列表
     */
    UserInfoVO getInfo();

    /**
     * 修改用户
     *
     * @param user 用户信息
     */
    void updateUser(UserDTO user);
    
    /**
     * 修改用户邮箱
     *
     * @param email 邮箱信息
     */
    void updateUserEmail(EmailDTO email);

    /**
     * 修改用户头像
     *
     * @param file 头像
     * @return 头像链接
     */
    String updateUserAvatar(MultipartFile file);

    /**
     * 更新用户信息
     *
     * @param userInfo 用户信息
     */
    void updateUserInfo(UserInfoDTO userInfo);

    /**
     * 修改用户密码
     *
     * @param user 用户密码
     */
    void updatePassword(UserPasswdDTO user);
}
